#include <iostream>
#include <signal.h>
#include <cassert>

#define signal_max 31

int main()
{
    //初始化信号集
    sigset_t set, oset, pending;
    sigemptyset(&set);
    sigemptyset(&oset);
    sigemptyset(&pending);

    //设置阻塞信号
    sigaddset(&set, 2);

    //阻塞信号
    sigprocmask(SIG_SETMASK, &set, &oset);

    //打印出未决信号集
    while(true)
    {
        sigpending(&pending);
        for (int i = 1; i < signal_max + 1; i++)
        {
            int flag = sigismember(&pending, i);
            assert(flag != -1);

            std::cout << flag;
        }
        std::cout << std::endl;
        sleep(1);
    }


    return 0;
}
